Skocz do zawartości
  • 👋 Witaj na MPCForum!

    Przeglądasz forum jako gość, co oznacza, że wiele świetnych funkcji jest jeszcze przed Tobą! 😎

    • Pełny dostęp do działów i ukrytych treści
    • Możliwość pisania i odpowiadania w tematach
    • System prywatnych wiadomości
    • Zbieranie reputacji i rozwijanie swojego profilu
    • Członkostwo w jednej z największych społeczności graczy

    👉 Dołączenie zajmie Ci mniej niż minutę – a zyskasz znacznie więcej!

    Zarejestruj się teraz

c++/tablice/rekurencja/wymnażanie wartości w tablicy


Rekomendowane odpowiedzi

Opublikowano
No to tak wszystko opisane w komentarzach jednak chciałbym aby kod zachował swój ,,charakter" bo wiem , że w tyo wiecie i zara dostanę o połowe skrócony kod którego połowy i tak nie bendę rozumiał ... coś trzea poprawić myślę:P...



#include <iostream>

using namespace std;

int funkcja(int a[],int x)/* 6. i tu się zaczynają kłopoty ... tworzę funkcję*/
{

for(int i=0;i<5;i++)/* i 7. tu się zaczyna pętla mająca odpowiadać za wymnożenie tych wartości..."i" można uznać za
miejsce w tablicy"
*/
{

int w=a[i];/* 8. zmiennej "w" przyporządkowuje wartość pod danym miejscem w tablicy, miejsce w tablicy określa "i"*/
return w * funkcja(a,5);/*a tu miała być rekurencja czyli do piątego miejsca pętla miała się wykonywać i mnożyć przez siebie kolejne wartości w tablicy.*/
}

}


int main()/* 1.ogółem chę aby program wymnożył mi
wszystkie wartości w tablicy
*/

{
int x=5;/* 2.tutaj użyłem zmiennej by móć w pętli for
operować na ilości miejsc w tablicy*/

int a[x];/* 3.tutaj ta tablica*/

for(x=0;x<5;x++)
{
cin >> a[x]; /* 4.tu użytkownik wybiera wartości
pod miejsca w tablicy*/
}

cout << *a << endl; /* 5.tu sprawdzałem czy wogule ta tablica działa i działa*/
cout << funkcja(a,5) << endl;
system ("pause");
}

-Jestem habilitowanym profesorem,magistrem, który nie umie zawiązać sobie butów.

-A ja jestem technikiem który daje ci prace.

Opublikowano
for(int i=0;i<5;i++) 

na

for(int i=0;i<x;i++) 

napisz o co ci chodzi z tym wymnażaniem, bo nie za bardzo rozumiem wgl ta funkcja cokolwiek ci zwraca? bo mi się zdaje że sie zapętla i nie jest w stanie wywołać returna

Opublikowano

Przypuszczam, że chciałeś wartość z tablicy * 5.

 

Nie lepiej zrobić w taki wypadku coś takiego?

 

 

for(int i=0;i<5;i++)
{
  int w = a[i];
  w = w * 5;
}

 

Wiem, że źle mogłem to zrobić xD.

1334497071-U17330.png

Opublikowano

jeśli dobrze rozumiem twój tajemniczy cel to

 

 

#include <iostream>

using namespace std;

int funkcja(int a[], int x = 0)
{

    if(x == 4) return a[x];
    return funkcja(a, x + 1) * a[x];
}

int main()
{
    const int x = 5; //w takim przypadku wazne jest const
    int a[x];
    for(int i = 0; i < 5; ++i)
        cin >> a[i];
    cout << funkcja(a) << endl;
}

jak chcesz, aby mozna bylo dostosowac wielkosc tablicy to musisz nieco to przerobić.

Opublikowano

Jak chcesz aby użytkownik dostosowywał wielkość tablicy to użyj dynamicznego alokowania pamięci (wskaźniki w skrócie).

#include <iostream>

using namespace std;

int funkcja(int* tab, int rozmiar)
{
    int wynik = 1; //1 bo przeciez jak bedziemy mnozyc przez 0 to wynik zawsze bedzie wynosil 0
    for(int i = 0; i < rozmiar; i++) wynik *= tab[i]; //wymnazamy wszystkie liczby
    return wynik;
}

int main()
{
    int x;
    cout << "Podaj ile liczb chcesz wprowadzic" << endl;
    cin >> x; //ile liczb chcemy wpisac?

    int* a = new int[x]; //alokujemy tablice

    for(int i = 0; i < x; i++) cin >> a[i]; //bierzemy liczby od uzytkownika

    cout << funkcja(a,x) << endl; //i wywolujemy funkcje

    delete[] a; //pamiętamy o zwolnieniu pamięci

    cin.sync();
    cin.get(); //mozna to uznac za ekwiwalent system("pause");

    return 0;
}

Opublikowano

"tajemnicy cel" :Pchodzi mi głównie o wymnożenie wartości w tablicy ... dzięki sopelek. Poradzie sopelka wszystko załapałem ... jednak wynikiem było 96 i zastanawiałem sie dlaczego.

 

 

if(i==4) return 4;

Pisząc to zapisałem że 4 to nie wartośc tylko miejsce gdzie zapisana jest warość a powinno wyglądać tak ...

 

if(i==4) return tablica[i];

dzięki pro programerze sopelku

-Jestem habilitowanym profesorem,magistrem, który nie umie zawiązać sobie butów.

-A ja jestem technikiem który daje ci prace.

Opublikowano

Natomiast Utermiku twój sposób nie działa ...

 

 
#include <iostream>
 
using namespace std;
 
 
int funkcja(int tablica[],int i=0)
{
   int wynik=1;
   for(i = 0; i < 5;i++)
   {
        wynik *= tablica[i];
        return wynik;
   }
}
 
 
 
int main()
{
int tablica[5];
 
 for(int i=0 ; i < 5;i++)
 {
 cout << "wartośc " <<i <<" elementu to "<<endl;
 cin>> tablica[i];
 }
 
  cout << funkcja(tablica)<<endl;
 
 system ("pause");
}

-Jestem habilitowanym profesorem,magistrem, który nie umie zawiązać sobie butów.

-A ja jestem technikiem który daje ci prace.

Opublikowano

sopelek ... a co tam źle ...

-Jestem habilitowanym profesorem,magistrem, który nie umie zawiązać sobie butów.

-A ja jestem technikiem który daje ci prace.

Opublikowano

dobra ... już wiem dwie małe rzeczy ...

 

 

Double post + 5%.

-Jestem habilitowanym profesorem,magistrem, który nie umie zawiązać sobie butów.

-A ja jestem technikiem który daje ci prace.

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

×
×
  • Dodaj nową pozycję...